﻿using System;
using personalplaner.business.stamm;
using personalplaner.common.mvvm;

namespace personalplaner.gui.stamm.viewmodels.models
{
    public class SetPersonAnstellungModel : BaseModel
	{
		#region IDataErrorInfo Members

		protected override string IsPropertyValid(string property)
		{
			if (property == "SelectedAnstellung")
			{
				if(SelectedAnstellung==null)
					return string.Format("{0} is empty.", property);
			}
			else if (property == "Von")
			{
				if (Von == DateTime.MinValue)
					return "Das von Datum wurde nicht gesetzt";
				if (Von > Bis)
					return "Das Von Datum darf nicht kleiner sein als das Bis Datum";
			}
			else if (property == "Bis")
			{
				if (Bis == DateTime.MinValue)
					return "Das Bis Datum wurde nicht gesetzt";
				if (Von > Bis)
					return "Das Von Datum darf nicht kleiner sein als das Bis Datum";
			}
			return base.IsPropertyValid(property);
		}

		#endregion

		Anstellung _selectedAnstellung;
        public Anstellung SelectedAnstellung
        {
            get
            {
                return _selectedAnstellung;
            }
            set
            {
                _selectedAnstellung = value;
                RaisePropertyChanged("SelectedAnstellung");
            }
        }

        DateTime _von;
        public DateTime Von
        {
            get
            {
                return _von;
            }
            set
            {
                //_von = value;
                // set first day in month
                _von = new DateTime(value.Year, value.Month, 1);
                RaisePropertyChanged("Von");
            }
        }

        DateTime _bis;
        public DateTime Bis
        {
            get
            {
                return _bis;
            }
            set
            {
                //_bis = value;
                // set last day in month
                _bis = new DateTime(value.Year, value.Month, DateTime.DaysInMonth(value.Year, value.Month));
                RaisePropertyChanged("Bis");
            }
        }
    }
}
